package br.com.sgi.model;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.NotEmpty;

@Entity
@Table(name = "EMAIL_HISTORICO")
@NamedQueries( 
		@NamedQuery(name = "buscarUltimoEmailHistorico", query = " SELECT eh FROM EmailHistorico eh "
				+ " WHERE eh.coMembro =:coMembro " +
				"	AND eh.dtEnvio = (SELECT max(h.dtEnvio) from EmailHistorico h WHERE h.coMembro = :coMembro)"
				)
	)
public class EmailHistorico implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "CO_SEQ_EMAIL_HISTORICO")
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq_emailhistorico_seqemailhistorico")
	@SequenceGenerator(name = "seq_emailhistorico_seqemailhistorico", sequenceName = "seq_emailhistorico")
	private Long coSeqHistoricoEmail;

	@Size(max = 100)
	@NotEmpty
	@Column(name = "NO_USER", length=100)
	private String noUser;

	@Column(name = "CO_MEMBRO")
	private Long coMembro;

	@Column(name = "NO_MEMBRO", length=100)
	private String noMembro;


	@Column(name = "DT_ENVIO")
	private Date dtEnvio;

	@Column(name = "MENSAGEM", length=1000)
	private String mensagem;

	@Column(name = "TITULO", length=100)
	private String titulo;

	@Transient
	private String mensagemFormatada;
	
	
	
	public String getMensagemFormatada() {
		if(mensagem != null){
			mensagemFormatada = mensagem.replace("<p>", "");
			mensagemFormatada = mensagemFormatada.replace("</p>", "");
		}
		
		return mensagemFormatada;
	}

	/**
	 * @return the coSeqHistoricoEmail
	 */
	public Long getCoSeqHistoricoEmail() {
		return coSeqHistoricoEmail;
	}

	/**
	 * @param coSeqHistoricoEmail the coSeqHistoricoEmail to set
	 */
	public void setCoSeqHistoricoEmail(Long coSeqHistoricoEmail) {
		this.coSeqHistoricoEmail = coSeqHistoricoEmail;
	}

	/**
	 * @return the noUser
	 */
	public String getNoUser() {
		return noUser;
	}

	/**
	 * @param noUser the noUser to set
	 */
	public void setNoUser(String noUser) {
		this.noUser = noUser;
	}

	/**
	 * @return the coMembro
	 */
	public Long getCoMembro() {
		return coMembro;
	}

	/**
	 * @param coMembro the coMembro to set
	 */
	public void setCoMembro(Long coMembro) {
		this.coMembro = coMembro;
	}

	/**
	 * @return the noMembro
	 */
	public String getNoMembro() {
		return noMembro;
	}

	/**
	 * @param noMembro the noMembro to set
	 */
	public void setNoMembro(String noMembro) {
		this.noMembro = noMembro;
	}

	/**
	 * @return the dtEnvio
	 */
	public Date getDtEnvio() {
		return dtEnvio;
	}

	/**
	 * @param dtEnvio the dtEnvio to set
	 */
	public void setDtEnvio(Date dtEnvio) {
		this.dtEnvio = dtEnvio;
	}

	/**
	 * @return the mensagem
	 */
	public String getMensagem() {
		return mensagem;
	}

	/**
	 * @param mensagem the mensagem to set
	 */
	public void setMensagem(String mensagem) {
		this.mensagem = mensagem;
	}

	/**
	 * @return the titulo
	 */
	public String getTitulo() {
		return titulo;
	}

	/**
	 * @param titulo the titulo to set
	 */
	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	
	
	

}
